### Compile-Time Weaving (Плетение аспектов во время исполнения кода)

#### Описание

Компиляция целевого исходного кода или классов аспектов с помощью компилятора-плагина **maven-antrun-plugin**.

После компиляции исходный код, плетеный аспектами запускается JVM как обычные Java классы.

Настройка компилятора `ajc` производится в `pom.xml` в секции `maven-antrun-plugin`.

TODO Уточнить настройки секции taskdef в `pom.xml`.

#### Запуск

Способ запуска: основное приложение и тесты.

Запуск основного приложения **main()** (для запуска добавить плагин `exec-maven-plugin` и указать **mainClass**, а 
так же изменить компилятор на `ajc` - производится в `pom.xml`):
> mvn clean -pl=weaving-compile-time-ant-plugin compile exec:java

Запуск теста(производится после компиляции компилятором `ajc`):
> mvn clean -pl=weaving-compile-time-ant-plugin test

Примечание: при запуске тестов без очистки (без команды `clear`) папки */target* периодически происходит выполнение теста без вызова AspectJ.

#### Дополнительно

Пример написан на основе [статьи](https://blog.jakubholy.net/2009/12/10/compiling-with-aspectjs-ajc-compil/).